---
title: PXF列投影
---

PXF支持列投影，始终是启用状态。使用列投影时，只从外部数据源返回外部表上的`SELECT`查询所需的列。此过程可以提高查询性能，还可以减少传输到Greenplum数据库的数据量。

**Note:** 某些外部数据源不支持列投影。 如果查询访问不支持列投影的数据源，则在没有列投影的情况下执行查询，并且在将数据传输到Greenplum数据库之后对数据进行过滤。

`pxf`外部表协议自动启用列投影。PXF使用不同的连接器访问外部数据源，列投影支持也由特定的连接器实现决定。 以下PXF连接器和配置文件组合支持读取操作的列投影:
- PXF Hive Connector, `HiveORC` profile
- PXF JDBC Connector, `Jdbc` profile
- PXF Hadoop 和 Object Store Connectors, `hdfs:parquet`, `adl:parquet`, `gs:parquet`,`s3:parquet`, 和 `wasbs:parquet` profiles

**Note:** 如果无法成功序列化查询过滤条件，PXF可能会禁用列投影; 例如，当WHERE子句解析为布尔类型时。


总而言之，必须满足以下所有条件才能进行列投影：

* 外部数据源必须支持列投影。例如，Hive支持ORC格式数据的列投影，某些SQL数据库支持列投影。
* 底层PXF连接器和配置文件实现必须支持列投影。例如，上面标识的PXF Hive和JDBC连接器配置文件支持列投影，支持读取Parquet数据的PXF连接器也支持列投影。
* PXF必须能够序列化查询过滤条件
